code: public static int listSearchCaseInsensitive(List<String> source, String target)
    {
      for (int i = 0; i < source.size(); i++)
      {
        if (target.equalsIgnoreCase(source.get(i)))
        {
          return i;
        }
      }
      return -1;
    }
docs: Given a list of String, do a case insensitive search for target string
  Used by resultsetMetadata to search for target column name
  
  @param source source string list
  @param target target string to match
  @return index in the source string list that matches the target string
  index starts from zero