### Apache Airflow Provider(s)

databricks

### Versions of Apache Airflow Providers

apache-airflow-providers-databricks==1!2.0.2


### Apache Airflow version

2.1.4 (latest released)

### Operating System

Debian GNU/Linux 11 (bullseye)

### Deployment

Docker-Compose

### Deployment details

Running local deployment using Astronomer CLI

### What happened

When calling the `get_run_state` method from the `DatabricksHook`, I get the following error:

`TypeError: Object of type RunState is not JSON serializable`

I think this is due to [the method returning a RunState custom class](https://github.com/apache/airflow/blob/main/airflow/providers/databricks/hooks/databricks.py#L275) as opposed to a `str` like the rest of the methods in the databricks hook (i.e. `get_job_id`, `get_run_page_url`, etc.)

### What you expected to happen

When calling the `get_run_state` method, simply return the `result_state` or `state_message` [variables](https://github.com/apache/airflow/blob/main/airflow/providers/databricks/hooks/databricks.py#L287-L288) instead of the `RunState` class.

### How to reproduce

Create a dag that references a databricks deployment and use this task to see the error:

```
    from airflow.providers.databricks.hooks.databricks import DatabricksHook
    run_id = <insert run id from databricks ui here>

    def get_run_state(self, run_id: str):
           return self.hook.get_run_state(run_id=run_id)

    python_get_run_state = PythonOperator(
        task_id="python_get_run_state",
        python_callable=get_run_state,
        op_kwargs={
            "run_id": str(run_id)
        }
    )
```

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

airflow/providers/databricks/hooks/databricks.py
"resource": resource,
                        "client_secret": self.databricks_conn.password,
                    }
                    azure_ad_endpoint = self.databricks_conn.extra_dejson.get(
                        "azure_ad_endpoint", AZURE_DEFAULT_AD_ENDPOINT
                    )
                    resp = requests.post(
                        AZURE_TOKEN_SERVICE_URL.format(azure_ad_endpoint, tenant_id),
                        data=data,
                        headers={**USER_AGENT_HEADER, 'Content-Type': 'application/x-www-form-urlencoded'},
                        timeout=self.aad_timeout_seconds,
                    )
                resp.raise_for_status()
                jsn = resp.json()
                if 'access_token' not in jsn or jsn.get('token_type') != 'Bearer' or 'expires_on' not in jsn:
                    raise AirflowException(f"Can't get necessary data from AAD token: {jsn}")
                token = jsn['access_token']
                self.aad_tokens[resource] = {'token': token, 'expires_on': int(jsn["expires_on"])}
                return token
            except requests_exceptions.RequestException as e:
                if not _retryable_error(e):
                    raise AirflowException(
                        f'Response: {e.response.content}, Status Code: {e.response.status_code}'
                    )
                self._log_request_error(attempt_num, e)
            if attempt_num == self.retry_limit:
                raise AirflowException(f'API requests to Azure failed {self.retry_limit} times. Giving up.')
            attempt_num += 1
            sleep(self.retry_delay)
    def _fill_aad_tokens(self, headers: dict) -> str: