private void execSqlZipEntry(ZipFile zipFile, Connection con, ZipEntry zipEntry, boolean isNewSchema) throws IOException, SQLException {	
		BufferedReader reader = null;
		try {
			reader = new BufferedReader(new InputStreamReader(zipFile.getInputStream(zipEntry)));
			for (String sql = reader.readLine(); sql != null; sql = reader.readLine()) {
				if (isNewSchema) { // skip any role and ownership changes if restoring to new schema
					if (sql.startsWith("SET ROLE ") || (sql.startsWith("ALTER ") && sql.contains(" OWNER TO "))) {
						continue;
					}
				}
				PreparedStatement stmt = null;
				try {
					stmt = con.prepareStatement(sql);
					if (sql.startsWith("SELECT ")) {
						stmt.executeQuery();
					} else {
						stmt.executeUpdate();
					}
				} catch (SQLException e) {
					throw new RuntimeException("error executing sql: " + sql, e);
				} finally {
					if (stmt != null) stmt.close();
				}
			}
		} finally {
			if (reader != null) reader.close();
		}
	}