code: public static TimeZone getTimeZone(String id) throws SQLException {
      TimeZone tz = TimeZone.getTimeZone(id);
  
      // Validate the timezone ID. JDK maps invalid timezones to GMT
      if ("GMT".equals(tz.getID()) && !"GMT".equals(id)) {
        throw new SQLException("invalid timezone id '" + id + "'");
      }
      return tz;
    }
docs: Get timezone from Id. This differ from java implementation : by default, if timezone Id is
  unknown, java return GMT timezone. GMT will be return only if explicitly asked.
  
  @param id timezone id
  @return timezone.
  @throws SQLException if no timezone is found for this Id