docs: def create_unihan_table(columns, metadata):
      """Create table and return  :class:`sqlalchemy.Table`.
  
      Parameters
      ----------
      columns : list
          columns for table, e.g. ``['kDefinition', 'kCantonese']``
      metadata : :class:`sqlalchemy.schema.MetaData`
          Instance of sqlalchemy metadata
  
      Returns
      -------
      :class:`sqlalchemy.schema.Table` :
          Newly created table with columns and index.
      """
  
      if TABLE_NAME not in metadata.tables:
          table = Table(TABLE_NAME, metadata)
  
          table.append_column(Column('char', String(12), primary_key=True))
          table.append_column(Column('ucn', String(12), primary_key=True))
  
          for column_name in columns:
              col = Column(column_name, String(256), nullable=True)
              table.append_column(col)
  
          return table
      else:
          return Table(TABLE_NAME, metadata)