private List<WebSocketChannelDTO> buildChannelDTOs(ResultSet rs) throws SQLException {
    ArrayList<WebSocketChannelDTO> channels = new ArrayList<>();
    try {
      while (rs.next()) {
        WebSocketChannelDTO channel = new WebSocketChannelDTO();
        channel.id = rs.getInt("channel_id");
        channel.host = rs.getString("host");
        channel.port = rs.getInt("port");
        channel.url = rs.getString("url");
        channel.startTimestamp = rs.getTimestamp("start_timestamp").getTime();

        Time endTs = rs.getTime("end_timestamp");
        channel.endTimestamp = (endTs != null) ? endTs.getTime() : null;

        channel.historyId = rs.getInt("history_id");

        channels.add(channel);
      }
    } finally {
      rs.close();
    }

    channels.trimToSize();

    return channels;
  }