### Apache Airflow Provider(s)

neo4j

### Versions of Apache Airflow Providers

apache-airflow-providers-neo4j version 2.0.0

### Apache Airflow version

2.1.0

### Operating System

macOS Big Sur Version 11.4

### Deployment

Docker-Compose

### Deployment details

docker-compose version 1.29.2, build 5becea4c
Docker version 20.10.7, build f0df350

### What happened

```python
neo4j = Neo4jHook(conn_id=self.neo4j_conn_id)
sql = "MATCH (n) RETURN COUNT(n)"
result = neo4j.run(sql)
logging.info(result)
```
If i run the code snippet above i always get an empty response.

### What you expected to happen

i would like to have the query response.

### How to reproduce

```python
from airflow.models.baseoperator import BaseOperator
from airflow.providers.neo4j.hooks.neo4j import Neo4jHook
import logging

class testNeo4jHookOperator(BaseOperator):

    def __init__(
            self,
            neo4j_conn_id: str,
            **kwargs) -> None:
        super().__init__(**kwargs)
        self.neo4j_conn_id = neo4j_conn_id

    def execute(self, context):
        neo4j = Neo4jHook(conn_id=self.neo4j_conn_id)
        sql = "MATCH (n) RETURN COUNT(n)"
        result = neo4j.run(sql)
        logging.info(result)
        return result
```
I created this custom operator to test the bug.

### Anything else

The bug is related to the way the hook is implemented and how the Neo4j driver works: 
```python
def run(self, query) -> Result:
        """
        Function to create a neo4j session
        and execute the query in the session.
        :param query: Neo4j query
        :return: Result
        """
        driver = self.get_conn()
        if not self.connection.schema:
            with driver.session() as session:
                result = session.run(query)
        else:
            with driver.session(database=self.connection.schema) as session:
                result = session.run(query)
        return result
```
In my opinion, the above hook run method should be changed to:
```python
    def run(self, query) -> Result:
        """
        Function to create a neo4j session
        and execute the query in the session.


        :param query: Neo4j query
        :return: Result
        """
        driver = self.get_conn()
        if not self.connection.schema:
            with driver.session() as session:
                result = session.run(query)
                return result.data()
        else:
            with driver.session(database=self.connection.schema) as session:
                result = session.run(query)
                return result.data()
```
This is because when trying to get result.data (or result in general) externally the session is always empty.
I tried this solution and it seems to work. 

### 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/neo4j/hooks/neo4j.py
"""
        Function to create a neo4j session
        and execute the query in the session.
        :param query: Neo4j query
        :return: Result
        """
        driver = self.get_conn()
        if not self.connection.schema:
            with driver.session() as session:
                result = session.run(query)
        else:
            with driver.session(database=self.connection.schema) as session:
                result = session.run(query)
        return result