def METHOD_NAME(
    data_context: Optional[AbstractDataContext] = None,
    splitter_query_response: Optional[list[tuple[str]]] = None,
    create_temp_table: bool = True,
) -> Generator[Any, Any, Any]:
    execution_eng_cls = sqlachemy_execution_engine_mock_cls(
        validate_batch_spec=lambda _: None,
        dialect="sqlite",
        splitter_query_response=splitter_query_response,
    )
    # These type ignores when dealing with the execution_engine_override are because
    # it is a generic. We don't care about the exact type since we swap it out with our
    # mock for the purpose of this test and then replace it with the original.
    original_override = SqliteDatasource.execution_engine_override  # type: ignore[misc]
    try:
        SqliteDatasource.execution_engine_override = execution_eng_cls  # type: ignore[misc]
        sqlite_datasource = SqliteDatasource(
            name="sqlite_datasource",
            connection_string="sqlite://",  # type: ignore[arg-type]  # pydantic will coerce
            create_temp_table=create_temp_table,
        )
        if data_context:
            sqlite_datasource._data_context = data_context
        yield sqlite_datasource
    finally:
        SqliteDatasource.execution_engine_override = original_override  # type: ignore[misc]