code: private void compileDatabaseNode(
              VoltCompilerReader cannonicalDDLIfAny,
              Database previousDBIfAny,
              final List<VoltCompilerReader> ddlReaderList,
              final InMemoryJarfile jarOutput)
                      throws VoltCompilerException
      {
          final ArrayList<Class<?>> classDependencies = new ArrayList<>();
          final VoltDDLElementTracker voltDdlTracker = new VoltDDLElementTracker(this);
  
          Database db = initCatalogDatabase(m_catalog);
  
          // shutdown and make a new hsqldb
          HSQLInterface hsql = HSQLInterface.loadHsqldb(ParameterizationInfo.getParamStateManager());
          compileDatabase(db, hsql, voltDdlTracker, cannonicalDDLIfAny, previousDBIfAny, ddlReaderList, classDependencies,
                          DdlProceduresToLoad.ALL_DDL_PROCEDURES, jarOutput);
      }
docs: Load a ddl file with full support for VoltDB extensions (partitioning, procedures,
  export), AND full support for input via a project xml file's "database" node.
  @param database catalog-related info parsed from a project file
  @param ddlReaderList Reader objects for ddl files.
  @param jarOutput The in-memory jar to populate or null if the caller doesn't provide one.
  @throws VoltCompilerException