code: def _try_loading_table_via_reflection(self, table_name: str):
      metadata_obj = BaseModel.metadata
      if table_name in metadata_obj.tables:
          return metadata_obj.tables[table_name]
      # reflection
      insp = inspect(self._sql_engine)
      if insp.has_table(table_name):
          table = Table(table_name, metadata_obj)
          insp.reflect_table(table, None)
          return table
      else:
          err_msg = f"No table found with name {table_name}"
          logger.exception(err_msg)
          raise Exception(err_msg)
  
imports: from typing import Iterator, List
  import numpy
  import pandas
  from sqlalchemy import Table, inspect
  from sqlalchemy.sql.expression import ColumnElement
  from evadb.catalog.catalog_type import ColumnType
  from evadb.catalog.models.base_model import BaseModel
  from evadb.catalog.models.column_catalog import ColumnCatalogEntry
  from evadb.catalog.models.table_catalog import TableCatalogEntry
  from evadb.catalog.schema_utils import SchemaUtils
  from evadb.catalog.sql_config import IDENTIFIER_COLUMN, ROW_NUM_COLUMN
  from evadb.database import EvaDBDatabase
  from evadb.models.storage.batch import Batch
  from evadb.parser.table_ref import TableInfo
  from evadb.storage.abstract_storage_engine import AbstractStorageEngine
  from evadb.utils.generic_utils import PickleSerializer, rebatch
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 4 for calling the SQLStorageEngine obj's underlying member method code with example usage: obj._try_loading_table_via_reflection(table_name) and returns: metadata_obj, table