### Apache Airflow Provider(s)

snowflake

### Versions of Apache Airflow Providers

4.0.3

### Apache Airflow version

2.5.0

### Operating System

docker/linux

### Deployment

Astronomer

### Deployment details

Normal Astro CLI

### What happened

```
>>> SnowflakeOperator(
    ...,
    do_xcom_push=False
).execute()


ERROR - Task failed with exception
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/airflow/providers/common/sql/operators/sql.py", line 272, in execute
    return self._process_output([output], hook.descriptions)[-1]
  File "/usr/local/lib/python3.9/site-packages/airflow/providers/snowflake/operators/snowflake.py", line 118, in _process_output
    for row in result_list:
TypeError: 'NoneType' object is not iterable
```

### What you think should happen instead

XCom's should be able to be turned off

### How to reproduce
1) 
```
astro dev init
```
2) `dags/snowflake_test.py`
```
import os
from datetime import datetime

from airflow import DAG
from airflow.providers.snowflake.operators.snowflake import SnowflakeOperator

os.environ["AIRFLOW_CONN_SNOWFLAKE"] = "snowflake://......."

with DAG('snowflake_test', schedule=None, start_date=datetime(2023, 1, 1)):
    SnowflakeOperator(
        task_id='snowflake_test',
        snowflake_conn_id="snowflake",
        sql="select 1;",
        do_xcom_push=False
    )
```
3) 
```
astro run -d dags/snowflake_test.py snowflake_test
```
```
Loading DAGs...
Running snowflake_test... [2023-02-17 18:45:33,537] {connection.py:280} INFO - Snowflake Connector for Python Version: 2.9.0, Python Version: 3.9.16, Platform: Linux-5.15.49-linuxkit-aarch64-with-glibc2.31
...
[2023-02-17 18:45:34,608] {cursor.py:727} INFO - query: [select 1]
[2023-02-17 18:45:34,698] {cursor.py:740} INFO - query execution done
...
[2023-02-17 18:45:34,785] {connection.py:581} INFO - closed
[2023-02-17 18:45:34,841] {connection.py:584} INFO - No async queries seem to be running, deleting session
FAILED
  'NoneType' object is not iterable
```

### 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)

"""
    Performs one or more of the checks provided in the checks dictionary.
    Checks should be written to return a boolean result.
    :param table: the table to run checks on
    :param checks: the dictionary of checks, where check names are followed by a dictionary containing at
        least a check statement, and optionally a partition clause, e.g.:
    .. code-block:: python
        {
            "row_count_check": {"check_statement": "COUNT(*) = 1000"},
            "column_sum_check": {"check_statement": "col_a + col_b < col_c"},
            "third_check": {"check_statement": "MIN(col) = 1", "partition_clause": "col IS NOT NULL"},
        }
    :param partition_clause: a partial SQL statement that is added to a WHERE clause in the query built by
        the operator that creates partition_clauses for the checks to run on, e.g.
    .. code-block:: python
        "date = '1970-01-01'"
    :param conn_id: the connection ID used to connect to the database
    :param database: name of database which overwrite the defined one in connection
    .. seealso::
        For more information on how to use this operator, take a look at the guide:
        :ref:`howto/operator:SQLTableCheckOperator`
    """
    template_fields = ("partition_clause", "table", "sql", "conn_id")
    template_fields_renderers = {"sql": "sql"}
    sql_check_template = """
    SELECT '{check_name}' AS check_name, MIN({check_name}) AS check_result
    FROM (SELECT CASE WHEN {check_statement} THEN 1 ELSE 0 END AS {check_name}
          FROM {table} {partition_clause}) AS sq
    """
    def __init__(