@Override
  public RegionDatabase load(UUID uuid) {
    HashMap<UUID, ProtectedChunkRegion> protectedChunks = new HashMap<>();
    PreparedStatement preparedStatement =
        baseSqliteConnection.createPreparedStatement(
            "SELECT COUNT(REGION_DATA) AS _SIZE_ FROM UPRO_%w_REGIONS"
                .replace("%w", uuid.toString().replace("-", "")));

    try {
      int size = preparedStatement.executeQuery().getInt("_SIZE_");
      preparedStatement =
          baseSqliteConnection.createPreparedStatement(
              "SELECT REGION_DATA FROM UPRO_%w_REGIONS"
                  .replace("%w", uuid.toString().replace("-", "")));
      ResultSet regions = preparedStatement.executeQuery();

      int i = 0;
      while (i < size) {
        ProtectedChunkRegion protectedChunkRegion =
            ProtectedChunkRegion.deserialize(regions.getString(1));
        protectedChunks.put(protectedChunkRegion.getUUID(), protectedChunkRegion);
        i++;
        regions.next();
      }
      preparedStatement.close();

    } catch (SQLException e) {
      e.printStackTrace();
    }

    return new RegionDatabase(protectedChunks);
  }
  @Override
  public void save(ProtectedChunkRegion protectedChunkRegion) {
    PreparedStatement var1;
    Iterator<ProtectedChunk> var2 = protectedChunkRegion.getProtectedChunks().iterator();
    ProtectedChunk var3;
    UUID currentUUID;

    while (var2.hasNext()) {
      try {
        var1 =
            baseSqliteConnection.createPreparedStatement(
                baseSqliteConnection.insertRegionIndex.replace(
                    "%w", protectedChunkRegion.getWorld().getUID().toString().replace("-", "")));

        var3 = var2.next();

        currentUUID = protectedChunkRegion.getUUID();
        var1.setString(1, protectedChunkRegion.getId());
        var1.setInt(2, var3.getX());
        var1.setInt(3, var3.getZ());
        var1.setString(
            4,
            String.format(
                "%s:%s",
                String.valueOf(currentUUID.getMostSignificantBits()),
                String.valueOf(currentUUID.getLeastSignificantBits())));
        var1.executeUpdate();
        var1.close();

        var1 =
            baseSqliteConnection.createPreparedStatement(
                baseSqliteConnection.insertRegion.replace(
                    "%w", protectedChunkRegion.getWorld().getUID().toString().replace("-", "")));
        var1.setString(
            1,
            String.format(
                "%s:%s",
                String.valueOf(currentUUID.getMostSignificantBits()),
                String.valueOf(currentUUID.getLeastSignificantBits())));
        var1.setString(2, protectedChunkRegion.serialize());
        var1.executeUpdate();
        var1.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }