public JLGClientData mapRowData(ResultSet rs, int rowNum) throws SQLException {

      List<SavingsDueData> savings = new ArrayList<>();

      JLGClientData client = this.mapRow(rs, rowNum);
      final Long previousClientId = client.getClientId();

      // first savings row of new client record
      SavingsDueData saving = savingsDueDataMapper.mapRow(rs, rowNum);
      savings.add(saving);

      while (rs.next()) {
        final Long clientId = JdbcSupport.getLong(rs, "clientId");
        if (previousClientId != null && clientId.compareTo(previousClientId) != 0) {
          // client id changes then return for next client data
          return JLGClientData.withSavings(client, savings);
        }
        saving = savingsDueDataMapper.mapRow(rs, rowNum);
        savings.add(saving);
      }
      return JLGClientData.withSavings(client, savings);
    }