code: @Override
      public synchronized TimestampData getCurrentDate() {
  
          resetCurrentTimestamp();
  
          if (currentDate == null) {
              currentDate = (TimestampData) Type.SQL_DATE.getValue(currentMillis
                      / 1000, 0, timeZoneSeconds);
          }
  
          return currentDate;
      }
docs: Returns the current date, unchanged for the duration of the current
  execution unit (statement).<p>
  
  SQL standards require that CURRENT_DATE, CURRENT_TIME and
  CURRENT_TIMESTAMP are all evaluated at the same point of
  time in the duration of each SQL statement, no matter how long the
  SQL statement takes to complete.<p>
  
  When this method or a corresponding method for CURRENT_TIME or
  CURRENT_TIMESTAMP is first called in the scope of a system change
  number, currentMillis is set to the current system time. All further
  CURRENT_XXXX calls in this scope will use this millisecond value.
  (fredt@users)