docs: public Runnable writeCatalogJarToFile(String path, String name, CatalogJarWriteMode mode) throws IOException
      {
          File catalogFile = new VoltFile(path, name);
          File catalogTmpFile = new VoltFile(path, name + ".tmp");
  
          if (mode == CatalogJarWriteMode.CATALOG_UPDATE) {
              // This means a @UpdateCore case, the asynchronous writing of
              // jar file has finished, rename the jar file
              catalogFile.delete();
              catalogTmpFile.renameTo(catalogFile);
              return null;
          }
  
          if (mode == CatalogJarWriteMode.START_OR_RESTART) {
              // This happens in the beginning of ,
              // when the catalog jar does not yet exist. Though the contents
              // written might be a default one and could be overwritten later
              // by @UAC, @UpdateClasses, etc.
              return m_catalogInfo.m_jarfile.writeToFile(catalogFile);
          }
  
          if (mode == CatalogJarWriteMode.RECOVER) {
              // we must overwrite the file (the file may have been changed)
              catalogFile.delete();
              if (catalogTmpFile.exists()) {
                  // If somehow the catalog temp jar is not cleaned up, then delete it
                  catalogTmpFile.delete();
              }
  
              return m_catalogInfo.m_jarfile.writeToFile(catalogFile);
          }
  
          VoltDB.crashLocalVoltDB("Unsupported mode to write catalog jar", true, null);
          return null;
      }