docstr: Returns the list of columns for the given table.
  Args:
      table_name (str): name of the table whose columns are to be retrieved.
  Returns:
      DBHandlerResponse
docstr_tok: ["Returns","the","list","of","columns","for","the","given","table",".","Args",":","table_name","(","str",")",":","name","of","the","table","whose","columns","are","to","be","retrieved",".","Returns",":","DBHandlerResponse"]
code: def get_columns(self, table_name: str) -> DBHandlerResponse:
      """
      Returns the list of columns for the given table.
      Args:
          table_name (str): name of the table whose columns are to be retrieved.
      Returns:
          DBHandlerResponse
      """
      if not self.connection:
          return DBHandlerResponse(
              data=None, error="Not connected to the database."
          )
  
      try:
          query = f"DESCRIBE {table_name}"
          columns_df = pd.read_sql_query(query, self.connection)
          columns_df["dtype"] = columns_df["dtype"].apply(
              self._clickhouse_to_python_types
          )
          return DBHandlerResponse(data=columns_df)
      except Exception as e:
          return DBHandlerResponse(data=None, error=str(e))
  
file_path: evadb/evadb/third_party/databases/clickhouse/clickhouse_handler.py
imports: import pandas
  from sqlalchemy import create_engine
  from evadb.third_party.databases.types import DBHandler, DBHandlerResponse, DBHandlerStatus
label_desc: Use image node_id 6 for calling the ClickHouseHandler obj's underlying member method code with example usage: obj.get_columns(table_name) and returns: DBHandlerResponse, DBHandlerResponse, DBHandlerResponse