In Dutch oven, heat oil over medium high heat. Add carrots, garlic and onion; cook, stirring often, for 5 minutes or until onion has softened. Season with salt and pepper.
Add water, bay leaf, thyme and ham bone. Bring to a boil; skim off scums accumulated on the surface. Reduce heat to medium, cover and simmer for an hour.
Add cannellini beans and simmer for 10 minutes. Remove ham bone and pull off meat from the bone. Return meat to the soup and discard the bone. Taste and season with salt and pepper, if needed.
Stir in spinach, cover and remove from heat. Let stand for 5 minutes.
Discard bay leaf and stems of thyme. Ladle the soup into bowls, garnish with fresh chopped parsley and serve.