Вы пытаетесь распечатать массив строк и ожидаете, что он будет выглядеть как строка.
System.out.println(rows.toString());
Когда вы вызываете это, по умолчанию он печатает каждый элемент в списке, нокаждый элемент, как вы запрограммировали, это экземпляр String [], а не String.Чтобы получить ожидаемые результаты, вам нужно пойти на шаг глубже, начальный стиль.
Попробуйте добавить такой метод:
public static void print(List<String[]> list) {
for(String[] arr : list) {
StringBuffer buff = new StringBuffer();
for(int i = 0; i < arr.length; i++) {
buff.append(arr[i]);
}
System.out.println(buff.toString());
}
}
и затем вызовите print(rows);