docs: protected Table generateTable(int tableIndex) {
  
          Table t = sysTables[tableIndex];
  
  //        Please note that this class produces non-null tables for
  //        just those absolutely essential to the JDBC 1 spec and the
  //        HSQLDB core.  Also, all table producing methods except
  //        SYSTEM_PROCEDURES() and SYSTEM_PROCEDURECOLUMNS() are declared final;
  //        this class produces only an empty table for each, as per previous
  //        DatabaseInformation implementations, whereas
  //        DatabaseInformationFull produces comprehensive content for
  //        them).
  //
  //        This break down of inheritance allows DatabaseInformation and
  //        DatabaseInformationMain (this class) to be made as small as possible
  //        while still meeting their mandates:
  //
  //        1.) DatabaseInformation prevents use of reserved system table names
  //            for user tables and views, meaning that even under highly
  //            constrained use cases where the notion of DatabaseMetaData can
  //            be discarded (i.e. the engine operates in a distribution where
  //            DatabaseInforationMain/Full and JDBCDatabaseMetaData have been
  //            dropped from the JAR), it is still impossible to produce a
  //            database which will be incompatible in terms of system table <=>
  //            user table name clashes, if/when imported into a more
  //            capable operating environment.
  //
  //        2.) DatabaseInformationMain builds on DatabaseInformation, providing
  //            at minimum what is needed for comprehensive operation under
  //            JDK 1.1/JDBC 1 and provides, at minimum, what was provided under
  //            earlier implementations.
  //
  //        3.) descendents of DatabaseInformationMain (such as the current
  //            DatabaseInformationFull) need not (and indeed: now cannot)
  //            override most of the DatabaseInformationMain table producing
  //            methods, as for the most part they are expected to be already
  //            fully comprehensive, security aware and accessible to all users.
          switch (tableIndex) {
  
              case SYSTEM_ALLTYPEINFO :
                  return SYSTEM_ALLTYPEINFO();
  
              case SYSTEM_BESTROWIDENTIFIER :
                  return SYSTEM_BESTROWIDENTIFIER();
  
              case SYSTEM_COLUMNS :
                  return SYSTEM_COLUMNS();
  
              case SYSTEM_CROSSREFERENCE :
                  return SYSTEM_CROSSREFERENCE();
  
              case SYSTEM_INDEXINFO :
                  return SYSTEM_INDEXINFO();
  
              case SYSTEM_PRIMARYKEYS :
                  return SYSTEM_PRIMARYKEYS();
  
              case SYSTEM_PROCEDURECOLUMNS :
                  return SYSTEM_PROCEDURECOLUMNS();
  
              case SYSTEM_PROCEDURES :
                  return SYSTEM_PROCEDURES();
  
              case SYSTEM_SCHEMAS :
                  return SYSTEM_SCHEMAS();
  
              case SYSTEM_TABLES :
                  return SYSTEM_TABLES();
  
              case SYSTEM_TABLETYPES :
                  return SYSTEM_TABLETYPES();
  
              case SYSTEM_TYPEINFO :
                  return SYSTEM_TYPEINFO();
  
              case SYSTEM_USERS :
                  return SYSTEM_USERS();
  
              case SYSTEM_SEQUENCES :
                  return SYSTEM_SEQUENCES();
  
              case COLUMN_PRIVILEGES :
                  return COLUMN_PRIVILEGES();
  
              case SEQUENCES :
                  return SEQUENCES();
  
              case TABLE_PRIVILEGES :
                  return TABLE_PRIVILEGES();
  
              case INFORMATION_SCHEMA_CATALOG_NAME :
                  return INFORMATION_SCHEMA_CATALOG_NAME();
  
              default :
                  return null;
          }
      }