private void changePassword(Connection c, String username, char[] newPassword)
			throws SQLException {
		StringBuilder buffer = new StringBuilder();
		buffer.append("ALTER ROLE \"");
		buffer.append(username);
		buffer.append("\" WITH PASSWORD '");
		for (char ch : newPassword) {
			if (ch == '\'') {
				buffer.append(ch);		// Escape single quote by appending it twice
			}
			buffer.append(ch);
		}
		buffer.append('\'');
		// Don't think jdbc does anything to this statement to encrypt password before sending it.
		// The connection with the server SHOULD be under SSL at this point
		try (Statement st = c.createStatement()) {

			st.executeUpdate(buffer.toString());

			// update password to be used for new connections
			postgresDs.setPassword(username, newPassword);
		}
	}
Obtain an exclusive lock on the main tables. To be used when INSERTING, DELETING, or UPDATING
to prevent concurrent changes to the tables.
@throws SQLException if the server reports an error
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/PostgresFunctionDatabase.java