Heat olive oil in a large pot over medium heat. Add diced onion and cook until soft and translucent, about 5 minutes. Add garlic and cook 1 more minute until fragrant.
Add the sausage to the pot. Break it apart with a spoon and cook until browned all over and no longer pink, about 6–8 minutes.
Pour in the can of whole tomatoes with their juice. Use a spoon to roughly break up the tomatoes. Let them cook together for 5 minutes so the flavors combine.
Stir in the beans and chicken stock. Bring the mixture to a boil, then reduce the heat to low.
Add the chopped kale. Stir well and let it wilt down into the soup. Simmer uncovered for about 20 minutes, letting everything reduce slightly and the flavors deepen.
Squeeze in the lemon juice. Taste and season with salt and pepper as needed.
Ladle into bowls and top generously with grated Parmesan cheese. Serve hot with crusty bread if you like.