Sort and rinse the beans before placing them in a large pot with the water. Bring to a boil over medium-high heat and cook 5 minutes. Turn off heat, cover, and let stand 1 1/2 hours. Drain.
Place the beans, chicken broth, garlic, sage leaves, bay leaves, and salt in a large pot. Bring to a boil over medium-high heat. Reduce heat to low and simmer until beans are tender, about 2 hours. Cool. Remove 1 cup of beans. Discard the bay leaves and sage leaves. Blend the remaining bean mixture with a hand mixer until smooth. Set aside.
Heat the olive oil in a large pot over medium-high heat. Add the onions; cook and stir until transparent, about 10 minutes. Combine the carrots, celery, potatoes, cabbage, Swiss chard, and kale with the onions. Stir in the tomatoes. Season with salt and pepper to taste. Cover, and cook until greens have wilted, stirring at least once, about 20 minutes. Stir in the pureed bean mixture, and cook 40 minute until the mixture thickens. Stir in the reserved beans. Adjust seasonings to taste. Add the toasted bread slices; cook until bread is soaked, about 10 minutes longer. Cool, and refrigerate overnight.
Reheat the soup over low heat until heated through, about 20 minutes. Serve each serving garnished with 2 tablespoons Parmesan cheese and a drizzle of olive oil.