private LaunchItDatabase() {
        try {
            log.addHandler(getLogFileHandler());
        } catch (SecurityException e) {
            log.log(Level.SEVERE,
                "Cannot create log file due to Security Exception: ", e);
        }
        try {
            Class.forName("org.sqlite.JDBC");
        } catch (ClassNotFoundException e) {
            log.log(Level.SEVERE,
                "org.sqlite.JDBC class not found: ", e);
            return;
        }
        
        try {          
            connection = DriverManager.getConnection(String.format("jdbc:sqlite:%s",
                    LaunchItConstants.DB_NAME));
        } catch (SQLException e) {
            log.log(Level.SEVERE,
                "Database access error: Cannot establish connection to database "
                        + LaunchItConstants.DB_NAME, e);
            return;
        }
        
        try {
            Class.forName("org.sqlite.JDBC");
            
            Statement stat = connection.createStatement();
            stat.executeUpdate(String.format("CREATE TABLE IF NOT EXISTS %s (%s, %s);",
                    LaunchItConstants.APPS_TABLE, LaunchItConstants.COLUMN_ALIAS,
                    LaunchItConstants.COLUMN_PATH));
            ResultSet rs = stat.executeQuery(QUERY_TABLE_INFO);
            try {
                columnNames.put(columnCount++, "rowid");
                while(rs.next()) {
                    columnNames.put(columnCount++, rs.getString("name"));
                }
            } finally {
                rs.close();
            }
            
        } catch (Exception e) {
            log.log(Level.SEVERE, "Exception while creating LaunchIt DB: ", e);
        }
        log.info("LaunchIt DB created");
    }