code: private List<ColumnTypeDataPair> getColumnValues(Map<String, ParameterBindingDTO> bindValues) throws BindException
    {
      List<ColumnTypeDataPair> columns = new ArrayList<>(bindValues.size());
      for (int i = 1; i <= bindValues.size(); i++)
      {
        // bindValues should have n entries with string keys 1 ... n and list values
        String key = Integer.toString(i);
        if (!bindValues.containsKey(key))
        {
          throw new BindException(
              String.format("Bind map with %d columns should contain key \"%d\"", bindValues.size(), i), BindException.Type.SERIALIZATION);
        }
  
        ParameterBindingDTO value = bindValues.get(key);
        try
        {
          String type = value.getType();
          List<String> list = (List<String>) value.getValue();
          List<String> convertedList = new ArrayList<>(list.size());
          if ("TIMESTAMP_LTZ".equals(type) || "TIMESTAMP_NTZ".equals(type))
          {
            for (String e : list)
            {
              convertedList.add(synchronizedTimestampFormat(e));
            }
          }
          else if ("DATE".equals(type))
          {
            for (String e : list)
            {
              convertedList.add(synchronizedDateFormat(e));
            }
          }
          else
          {
            convertedList = list;
          }
          columns.add(i - 1, new ColumnTypeDataPair(type, convertedList));
        }
        catch (ClassCastException ex)
        {
          throw new BindException("Value in binding DTO could not be cast to a list", BindException.Type.SERIALIZATION);
        }
      }
      return columns;
    }
docs: Convert bind map to a list of values for each column
  Perform necessary type casts and invariant checks
  
  @param bindValues the bind map to convert
  @return list of values for each column
  @throws BindException if bind map is improperly formed