**Apache Airflow version**:

2.1.0

**Environment**:

- self hosted docker-compose based stack

**What happened**:

Using JDBCOperator if the sql result in an error we got only 
```
[2021-06-21 11:05:55,377] {local_task_job.py:151} INFO - Task exited with return code 1
```

Before upgrading from 2.0.1 we got error details in logs:
```
jaydebeapi.DatabaseError: java.sql.SQLException:... [MapR][DrillJDBCDriver](500165) Query execution error. Details: VALIDATION ERROR:...
``` 

**What you expected to happen**:

See `SQLException` in logs

**How to reproduce it**:

Perform a generic SQL task with broken SQL.

**Anything else we need to know**:

I think is somehow related to https://github.com/apache/airflow/commit/abcd48731303d9e141bdc94acc2db46d73ccbe12#diff-4fd3febb74d94b2953bf5e9b4a981b617949195f83d96f4a589c3078085959b7R202 
airflow/models/taskinstance.py
"""
            Wrapper around Variable. This way you can get variables in
            templates by using ``{{ var.json.variable_name }}`` or
            ``{{ var.json.get('variable_name', {'fall': 'back'}) }}``.
            """
            def __init__(self):
                self.var = None
            def __getattr__(
                self,
                item: str,
            ):
                self.var = Variable.get(item, deserialize_json=True)
                return self.var
            def __repr__(self):
                return str(self.var)
            @staticmethod
            def get(
                item: str,
                default_var: Any = Variable._Variable__NO_DEFAULT_SENTINEL,
            ):
                """Get Airflow Variable after deserializing JSON value"""
                return Variable.get(item, default_var=default_var, deserialize_json=True)
        class ConnectionAccessor:
            """
            Wrapper around Connection. This way you can get connections in
            templates by using ``{{ conn.conn_id }}`` or
            ``{{ conn.get('conn_id') }}``.
            """
            def __getattr__(