Place a Dutch oven or a soup pot over medium heat. Add the bacon and cook until browned, 2 to 3 minutes. Add the oil and onion and cook until translucent, about 4 minutes. Add the celery, carrots, and garlic and cook until softened, about 5 minutes. Add the potato and cook until it has started to soften, about 6 minutes. Add the tomatoes, wine, broth, beans, and 2 cups of water. Place the Swiss chard on top, cover, and bring to a boil. Uncover, stir to combine, and simmer gently for 45 minutes. Remove from heat. Stir in the salt and pepper gently to combine. (At this point, the soup can be chilled for serving the next day.) Divide the bread among serving bowls. Ladle the hot soup over the bread and finish with a drizzle of olive oil or pesto, if desired.