code: def HasTable(self, table_name):
      
      if not self._connection:
        raise IOError('Not opened.')
  
      if not table_name:
        return False
  
      if self._table_names is None:
        self._table_names = []
  
        self._cursor.execute(self._HAS_TABLE_QUERY)
        for row in self._cursor.fetchall():
          if not row[0]:
            continue
  
          row_table_name = row[0]
          if isinstance(row_table_name, bytes):
            row_table_name = row_table_name.decode('utf-8')
  
          self._table_names.append(row_table_name.lower())
  
      table_name = table_name.lower()
      return table_name in self._table_names
docs: Determines if a specific table exists.
  
      Args:
        table_name (str): name of the table.
  
      Returns:
        bool: True if the column exists.
  
      Raises:
        IOError: if the database file is not opened.
        OSError: if the database file is not opened.