code: private ProjectFile handleSQLiteFile(InputStream stream) throws Exception
     {
        File file = InputStreamHelper.writeStreamToTempFile(stream, ".sqlite");
  
        try
        {
           Class.forName("org.sqlite.JDBC");
           String url = "jdbc:sqlite:" + file.getCanonicalPath();
           Set<String> tableNames = populateTableNames(url);
  
           if (tableNames.contains("EXCEPTIONN"))
           {
              return readProjectFile(new AstaDatabaseFileReader(), file);
           }
  
           if (tableNames.contains("PROJWBS"))
           {
              Connection connection = null;
              try
              {
                 Properties props = new Properties();
                 props.setProperty("date_string_format", "yyyy-MM-dd HH:mm:ss");
                 connection = DriverManager.getConnection(url, props);
                 PrimaveraDatabaseReader reader = new PrimaveraDatabaseReader();
                 reader.setConnection(connection);
                 addListeners(reader);
                 return reader.read();
              }
              finally
              {
                 if (connection != null)
                 {
                    connection.close();
                 }
              }
           }
  
           if (tableNames.contains("ZSCHEDULEITEM"))
           {
              return readProjectFile(new MerlinReader(), file);
           }
  
           return null;
        }
  
        finally
        {
           FileHelper.deleteQuietly(file);
        }
     }
docs: We have identified that we have a SQLite file. This could be a Primavera Project database
  or an Asta database. Open the database and use the table names present to determine
  which type this is.
  
  @param stream schedule data
  @return ProjectFile instance